
package com.crowdfunding.circle.analyze.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.crowdfunding.circle.analyze.entity.ProjectTypeVO;
import com.crowdfunding.circle.analyze.param.ProjectTypeParam;
import com.crowdfunding.circle.common.dao.BaseDao;

/**
 * 项目类型对应的拆解项Dao实现类
 *
 * @author 朱国军
 * @version 2016年07月03日 朱国军
 */
@Repository("projectTypeDao")
public class ProjectTypeDao extends BaseDao<ProjectTypeVO> {

    /**
     * 新增，注：返回的添加的条数，获取主键用entity.getId();
     *
     * @param entity 要增加的项目类型对应的拆解项对象
     * @return 返回新增的条数
     */
    public Integer insert(ProjectTypeVO entity) {
        return this.getSqlSession().insert("insertProjectType", entity);
    }
    
    /**
     * 修改
     *
     * @param entity 要修改的项目类型对应的拆解项对象
     * @return 返回修改的条数
     */
    public Integer update(ProjectTypeVO entity) {
        return this.getSqlSession().update("updateProjectTypeById", entity);
    }
    
    /**
     * 根据ID获取项目类型对应的拆解项实体
     *
     * @param id 主键
     * @return 项目类型对应的拆解项信息
     */
    public ProjectTypeVO findById(String id) {
        return this.getSqlSession().selectOne("selectProjectTypeById", id);
    }
    
    /**
     * 按查询条件【分页】查询
     *
     * @param param 项目类型对应的拆解项查询条件
     * @return 项目类型对应的拆解项列表
     */
    public List<ProjectTypeVO> queryByPage(ProjectTypeParam param) {
        return queryList("selectProjectTypeList", param);
    }
    
    /**
     * 根据ID删除项目类型对应的拆解项
     *
     * @param id 主键
     */
    public Integer delete(String id) {
        return this.getSqlSession().delete("deleteProjectTypeById", id);
    }
    
    /**
     * 根据typeIndex查询项目类型
     *
     * @param typeIndex 项目类型序号
     * @return
     */
    public ProjectTypeVO findByTypeIndex(Integer typeIndex) {
        return this.getSqlSession().selectOne("selectProjectTypeByTypeIndex", typeIndex);
    }
}
